package com.rad.net.protocol.android.http;

import java.io.InputStream;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 类说明： 请求对象，需要向联网器提供该对象来进行联网操作
 * 
 * @author xinhui.cheng
 * @date 2014-8-15
 * @version 1.0
 */
public class Request implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 请求的url地址，可能包含拼接好的GET请求参数
	 */
	private String url;
	/**
	 * post参数体
	 */
	private InputStream body;
	
	/**
	 * HTTP请求的header参数
	 */
	private Map<String, String> header;

	/**
	 * 获取请求的url地址，可能包含拼接好的GET请求参数
	 * @return  请求地址
	 */
	public String getUrl() {
		return url;
	}

	/**
	 * 设置请求的url地址，可以包含拼接好的GET请求参数
	 * @param url  请求地址
	 */
	public void setUrl(String url) {
		this.url = url;
	}
	
	/**
	 * 获取请求实体
	 * @return post请求实体
	 */
	public InputStream getBody() {
		return body;
	}

	/**
	 * 设置请求实体
	 * @param body  post请求实体
	 */
	public void setBody(InputStream body) {
		this.body = body;
	}

	/**
	 * 获取请求头
	 * @return 键值对形式的请求头
	 */
	public Map<String, String> getHeader() {
		return header;
	}

	/**
	 * 设置请求头
	 * @param header 键值对形式的请求头
	 */
	public void setHeader(Map<String, String> header) {
		this.header = header;
	}
	/**
	 * 添加header参数
	 * @param key 参数的键
	 * @param value 参数的值
	 */
	public void putHeaderParam(String key, String value){
		if(header == null){
			header = new HashMap<String, String>();
		}
		header.put(key, value);
	}
	
}
